Are some DS enriched?

library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.2     ✔ readr     2.1.4
## ✔ forcats   1.0.0     ✔ stringr   1.5.0
## ✔ ggplot2   3.4.2     ✔ tibble    3.2.1
## ✔ lubridate 1.9.2     ✔ tidyr     1.3.0
## ✔ purrr     1.0.2     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(myTAI)
#  myTAI v1.0.1.9000 2023-07-12 Github (drostlab/myTAI@46eb927)

Fucus analysis

Here, I focus on the stages that generates the Fucus embryo, i.e. stages not gamates nor matSP.

Fd_DES <-
  readr::read_csv(file = "data/Fd_DES.csv") %>%
  dplyr::select(!c("gamete","matSP"))
## Rows: 4510 Columns: 9
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): GeneID
## dbl (8): Phylostratum, gamete, E1, E2, E3, E4, E5, matSP
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
Fs_DES <-
  readr::read_csv(file = "data/Fs_DES.csv") %>%
  dplyr::select(!c("gamete","matSP"))
## Rows: 4502 Columns: 9
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): GeneID
## dbl (8): Phylostratum, gamete, 24H, 48H, 1w, 3w, 4w, matSP
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

sqrt-tranformed

Fd_DES.sqrt <-
  readr::read_csv(file = "data/Fd_DES.sqrt.csv") %>%
  dplyr::select(!c("gamete","matSP"))
## Rows: 4510 Columns: 9
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): GeneID
## dbl (8): Phylostratum, gamete, E1, E2, E3, E4, E5, matSP
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
Fs_DES.sqrt <-
  readr::read_csv(file = "data/Fs_DES.sqrt.csv") %>%
  dplyr::select(!c("gamete","matSP"))
## Rows: 4502 Columns: 9
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): GeneID
## dbl (8): Phylostratum, gamete, 24H, 48H, 1w, 3w, 4w, matSP
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

log2-tranformed

Fd_DES.log2 <-
  readr::read_csv(file = "data/Fd_DES.log2.csv") %>%
  dplyr::select(!c("gamete","matSP"))
## Rows: 4510 Columns: 9
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): GeneID
## dbl (8): Phylostratum, gamete, E1, E2, E3, E4, E5, matSP
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
Fs_DES.log2 <-
  readr::read_csv(file = "data/Fs_DES.log2.csv") %>%
  dplyr::select(!c("gamete","matSP"))
## Rows: 4502 Columns: 9
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): GeneID
## dbl (8): Phylostratum, gamete, 24H, 48H, 1w, 3w, 4w, matSP
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
# different sexes
Fd_DES_sex.log2 <-
  readr::read_csv(file = "data/Fd_DES_M.log2.csv") %>%
  dplyr::rename(gamete_M = V1)
## Rows: 4510 Columns: 3
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): GeneID
## dbl (2): Phylostratum, V1
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
Fd_DES_sex.log2 <-
  readr::read_csv(file = "data/Fd_DES_F.log2.csv") %>%
  dplyr::rename(gamete_F = V1) %>%
  left_join(Fd_DES_sex.log2)
## Rows: 4510 Columns: 3
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): GeneID
## dbl (2): Phylostratum, V1
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
## Joining with `by = join_by(Phylostratum, GeneID)`
Fs_DES_sex.log2 <-
  readr::read_csv(file = "data/Fs_DES_M.log2.csv") %>% 
  dplyr::rename_with(
    ~ paste0(.x, "_M"),
    dplyr::starts_with(c("gamete", "mat")) &! dplyr::ends_with("_F"))
## Rows: 4502 Columns: 4
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): GeneID
## dbl (3): Phylostratum, gamete, matSP
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
Fs_DES_sex.log2 <-
  readr::read_csv(file = "data/Fs_DES_F.log2.csv") %>% 
  dplyr::rename_with(
    ~ paste0(.x, "_F"),
    dplyr::starts_with(c("gamete", "mat")) &! dplyr::ends_with("_M")) %>%
  dplyr::left_join(Fs_DES_sex.log2)
## Rows: 4502 Columns: 4
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): GeneID
## dbl (3): Phylostratum, gamete, matSP
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
## Joining with `by = join_by(Phylostratum, GeneID)`
Fs_DES_sex_mat.log2 <- 
  Fs_DES_sex.log2 %>%
  dplyr::select(!dplyr::starts_with("gamete"))
Fs_DES_sex_gam.log2 <- 
  Fs_DES_sex.log2 %>%
  dplyr::select(!dplyr::starts_with("mat"))

# different tissues
Fd_DES_matSP.log2 <-
  readr::read_csv(file = "data/Fd_DES_matSP.log2.csv")
## Rows: 4510 Columns: 6
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): GeneID
## dbl (5): Phylostratum, holdfast, reptip, stipe, vegtip
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
Fs_DES_M_matSP.log2 <-
  readr::read_csv(file = "data/Fs_DES_M_matSP.log2.csv")
## Rows: 4502 Columns: 6
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): GeneID
## dbl (5): Phylostratum, holdfast, reptip, stipe, vegtip
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
Fs_DES_F_matSP.log2 <-
  readr::read_csv(file = "data/Fs_DES_F_matSP.log2.csv")
## Rows: 4502 Columns: 6
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): GeneID
## dbl (5): Phylostratum, holdfast, reptip, stipe, vegtip
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
Fs_DES_matSP_holdfast.log2 <-
  Fs_DES_M_matSP.log2 %>% 
  dplyr::select(1:2 | dplyr::starts_with("holdfast")) %>%
  dplyr::rename_with(
    ~ paste0(.x, "_M"),
    dplyr::starts_with(c("holdfast")) &! dplyr::ends_with("_F"))
Fs_DES_matSP_holdfast.log2 <-
  Fs_DES_F_matSP.log2 %>% 
  dplyr::select(1:2 | dplyr::starts_with("holdfast")) %>%
  dplyr::rename_with(
    ~ paste0(.x, "_F"),
    dplyr::starts_with(c("holdfast")) &! dplyr::ends_with("_M")) %>%
  dplyr::left_join(Fs_DES_matSP_holdfast.log2)
## Joining with `by = join_by(Phylostratum, GeneID)`
Fs_DES_matSP_reptip.log2 <-
  Fs_DES_M_matSP.log2 %>% 
  dplyr::select(1:2 | dplyr::starts_with("reptip")) %>%
  dplyr::rename_with(
    ~ paste0(.x, "_M"),
    dplyr::starts_with(c("reptip")) &! dplyr::ends_with("_F"))
Fs_DES_matSP_reptip.log2 <-
  Fs_DES_F_matSP.log2 %>% 
  dplyr::select(1:2 | dplyr::starts_with("reptip")) %>%
  dplyr::rename_with(
    ~ paste0(.x, "_F"),
    dplyr::starts_with(c("reptip")) &! dplyr::ends_with("_M")) %>%
  dplyr::left_join(Fs_DES_matSP_reptip.log2)
## Joining with `by = join_by(Phylostratum, GeneID)`
Fs_DES_matSP_stipe.log2 <-
  Fs_DES_M_matSP.log2 %>% 
  dplyr::select(1:2 | dplyr::starts_with("stipe")) %>%
  dplyr::rename_with(
    ~ paste0(.x, "_M"),
    dplyr::starts_with(c("stipe")) &! dplyr::ends_with("_F"))
Fs_DES_matSP_stipe.log2 <-
  Fs_DES_F_matSP.log2 %>% 
  dplyr::select(1:2 | dplyr::starts_with("stipe")) %>%
  dplyr::rename_with(
    ~ paste0(.x, "_F"),
    dplyr::starts_with(c("stipe")) &! dplyr::ends_with("_M")) %>%
  dplyr::left_join(Fs_DES_matSP_stipe.log2)
## Joining with `by = join_by(Phylostratum, GeneID)`
Fs_DES_matSP_vegtip.log2 <-
  Fs_DES_M_matSP.log2 %>% 
  dplyr::select(1:2 | dplyr::starts_with("vegtip")) %>%
  dplyr::rename_with(
    ~ paste0(.x, "_M"),
    dplyr::starts_with(c("vegtip")) &! dplyr::ends_with("_F"))
Fs_DES_matSP_vegtip.log2 <-
  Fs_DES_F_matSP.log2 %>% 
  dplyr::select(1:2 | dplyr::starts_with("vegtip")) %>%
  dplyr::rename_with(
    ~ paste0(.x, "_F"),
    dplyr::starts_with(c("vegtip")) &! dplyr::ends_with("_M")) %>%
  dplyr::left_join(Fs_DES_matSP_vegtip.log2)
## Joining with `by = join_by(Phylostratum, GeneID)`

rank-tranformed

Fd_DES.rank <-
  readr::read_csv(file = "data/Fd_DES.rank.csv") %>%
  dplyr::select(!c("gamete","matSP"))
## Rows: 4510 Columns: 9
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): GeneID
## dbl (8): Phylostratum, gamete, E1, E2, E3, E4, E5, matSP
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
Fs_DES.rank <-
  readr::read_csv(file = "data/Fs_DES.rank.csv") %>%
  dplyr::select(!c("gamete","matSP"))
## Rows: 4502 Columns: 9
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): GeneID
## dbl (8): Phylostratum, gamete, 24H, 48H, 1w, 3w, 4w, matSP
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

rlog-tranformed

Fd_DES.rlog <-
  readr::read_csv(file = "data/Fd_DES.rlog.csv") %>%
  dplyr::select(!c("gamete","matSP"))
## Rows: 4510 Columns: 9
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): GeneID
## dbl (8): Phylostratum, gamete, E1, E2, E3, E4, E5, matSP
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
Fs_DES.rlog <-
  readr::read_csv(file = "data/Fs_DES.rlog.csv") %>%
  dplyr::select(!c("gamete","matSP"))
## Rows: 4502 Columns: 9
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): GeneID
## dbl (8): Phylostratum, gamete, 24H, 48H, 1w, 3w, 4w, matSP
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

PlotCategoryExpr()

Fucus distichus

# PlotCategoryExpr(
#   ExpressionSet = Fd_DES.log2,
#   legendName    = "DS",
#   test.stat     = TRUE,
#   type          = "category-centered",
#   distr.type    = "boxplot",
#   log.expr      = FALSE) +
#   ggplot2::labs(
#     title = "Fucus distichus",
#     subtitle = "log2(TPM+1)"
#   )

PlotCategoryExpr(
  ExpressionSet = Fd_DES.log2,
  legendName    = "DS",
  test.stat     = TRUE,
  type          = "stage-centered",
  distr.type    = "boxplot",
  log.expr      = FALSE) +
  ggplot2::labs(
    title = "Fucus distichus development",
    subtitle = "log2(TPM+1)"
  )
##                DS1   DS2   DS3   DS4   DS5  
## stage-centered "***" "***" "***" "***" "***"

PlotCategoryExpr(
  ExpressionSet = Fd_DES_sex.log2,
  legendName    = "DS",
  test.stat     = TRUE,
  type          = "stage-centered",
  distr.type    = "boxplot",
  log.expr      = FALSE) +
  ggplot2::labs(
    title = "Fucus distichus gamete sexes",
    subtitle = "log2(TPM+1)"
  )
##                DS1   DS2   DS3   DS4   DS5  
## stage-centered "***" "***" "***" "***" "***"

PlotCategoryExpr(
  ExpressionSet = Fd_DES_matSP.log2,
  legendName    = "DS",
  test.stat     = TRUE,
  type          = "stage-centered",
  distr.type    = "boxplot",
  log.expr      = FALSE) +
  ggplot2::labs(
    title = "Fucus distichus matSP tissues",
    subtitle = "log2(TPM+1)"
  )
##                DS1   DS2   DS3   DS4   DS5  
## stage-centered "***" "***" "***" "***" "***"

Fucus serratus

# PlotCategoryExpr(
#   ExpressionSet = Fs_DES.log2,
#   legendName    = "DS",
#   test.stat     = TRUE,
#   type          = "category-centered",
#   distr.type    = "boxplot",
#   log.expr      = FALSE) +
#   ggplot2::labs(
#     title = "Fucus serratus",
#     subtitle = "log2(TPM+1)"
#   )

PlotCategoryExpr(
  ExpressionSet = Fs_DES.log2,
  legendName    = "DS",
  test.stat     = TRUE,
  type          = "stage-centered",
  distr.type    = "boxplot",
  log.expr      = FALSE) +
  ggplot2::labs(
    title = "Fucus serratus development",
    subtitle = "log2(TPM+1)"
  )
##                DS1   DS2   DS3   DS4  DS5  
## stage-centered "***" "***" "***" "**" "***"

PlotCategoryExpr(
  ExpressionSet = Fs_DES_sex_gam.log2,
  legendName    = "DS",
  test.stat     = TRUE,
  type          = "stage-centered",
  distr.type    = "boxplot",
  log.expr      = FALSE) +
  ggplot2::labs(
    title = "Fucus serratus gamete sexes",
    subtitle = "log2(TPM+1)"
  )
##                DS1   DS2   DS3   DS4   DS5  
## stage-centered "***" "***" "***" "***" "***"

PlotCategoryExpr(
  ExpressionSet = Fs_DES_sex_mat.log2,
  legendName    = "DS",
  test.stat     = TRUE,
  type          = "stage-centered",
  distr.type    = "boxplot",
  log.expr      = FALSE) +
  ggplot2::labs(
    title = "Fucus serratus matSP sexes",
    subtitle = "log2(TPM+1)"
  )
##                DS1 DS2 DS3 DS4    DS5
## stage-centered "*" "*" "*" "n.s." "*"

PlotCategoryExpr(
  ExpressionSet = Fs_DES_M_matSP.log2,
  legendName    = "DS",
  test.stat     = TRUE,
  type          = "stage-centered",
  distr.type    = "boxplot",
  log.expr      = FALSE) +
  ggplot2::labs(
    title = "Fucus serratus matSP (male) tissues",
    subtitle = "log2(TPM+1)"
  )
##                DS1   DS2   DS3   DS4   DS5  
## stage-centered "***" "***" "***" "***" "***"

PlotCategoryExpr(
  ExpressionSet = Fs_DES_F_matSP.log2,
  legendName    = "DS",
  test.stat     = TRUE,
  type          = "stage-centered",
  distr.type    = "boxplot",
  log.expr      = FALSE) +
  ggplot2::labs(
    title = "Fucus serratus matSP (female) tissues",
    subtitle = "log2(TPM+1)"
  )
##                DS1   DS2   DS3   DS4   DS5  
## stage-centered "***" "***" "***" "***" "***"

PlotCategoryExpr(
  ExpressionSet = Fs_DES_matSP_vegtip.log2,
  legendName    = "DS",
  test.stat     = TRUE,
  type          = "stage-centered",
  distr.type    = "boxplot",
  log.expr      = FALSE) +
  ggplot2::labs(
    title = "Fucus serratus matSP vegtip",
    subtitle = "log2(TPM+1)"
  )
##                DS1    DS2    DS3    DS4    DS5   
## stage-centered "n.s." "n.s." "n.s." "n.s." "n.s."

PlotCategoryExpr(
  ExpressionSet = Fs_DES_matSP_reptip.log2,
  legendName    = "DS",
  test.stat     = TRUE,
  type          = "stage-centered",
  distr.type    = "boxplot",
  log.expr      = FALSE) +
  ggplot2::labs(
    title = "Fucus serratus matSP reptip",
    subtitle = "log2(TPM+1)"
  )
##                DS1   DS2   DS3   DS4   DS5  
## stage-centered "***" "***" "***" "***" "***"

PlotCategoryExpr(
  ExpressionSet = Fs_DES_matSP_stipe.log2,
  legendName    = "DS",
  test.stat     = TRUE,
  type          = "stage-centered",
  distr.type    = "boxplot",
  log.expr      = FALSE) +
  ggplot2::labs(
    title = "Fucus serratus matSP stipe",
    subtitle = "log2(TPM+1)"
  )
##                DS1   DS2   DS3   DS4   DS5  
## stage-centered "***" "***" "***" "***" "***"

PlotCategoryExpr(
  ExpressionSet = Fs_DES_matSP_holdfast.log2,
  legendName    = "DS",
  test.stat     = TRUE,
  type          = "stage-centered",
  distr.type    = "boxplot",
  log.expr      = FALSE) +
  ggplot2::labs(
    title = "Fucus serratus matSP holdfast",
    subtitle = "log2(TPM+1)"
  )
##                DS1 DS2    DS3 DS4    DS5
## stage-centered "*" "n.s." "*" "n.s." "*"

The results are a lot clearer with our RNA-seq data compared to the microarray data of PhyloExpressionSetExample.

Ectocarpus analysis

Here, I focus on the stages that generates the Fucus embryo, i.e. stages not gamates nor matSP.

Ec_DES_32m <-
  readr::read_csv(file = "data/Ec_DES_32m.csv")
## Rows: 7657 Columns: 11
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr  (1): GeneID
## dbl (10): Phylostratum, meiospore, immGA, matGA, oldGA, gamete, earlyPSP, im...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
Ec_DES_25f <-
  readr::read_csv(file = "data/Ec_DES_25f.csv")
## Rows: 7657 Columns: 11
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr  (1): GeneID
## dbl (10): Phylostratum, meiospore, immGA, matGA, oldGA, gamete, earlyPSP, im...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

sqrt-tranformed

Ec_DES_32m.sqrt <-
  readr::read_csv(file = "data/Ec_DES_32m.sqrt.csv")
## Rows: 7657 Columns: 11
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr  (1): GeneID
## dbl (10): Phylostratum, meiospore, immGA, matGA, oldGA, gamete, earlyPSP, im...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
Ec_DES_25f.sqrt <-
  readr::read_csv(file = "data/Ec_DES_25f.sqrt.csv")
## Rows: 7657 Columns: 11
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr  (1): GeneID
## dbl (10): Phylostratum, meiospore, immGA, matGA, oldGA, gamete, earlyPSP, im...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

log2-tranformed

Ec_DES_32m.log2 <-
  readr::read_csv(file = "data/Ec_DES_32m.log2.csv")
## Rows: 7657 Columns: 11
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr  (1): GeneID
## dbl (10): Phylostratum, meiospore, immGA, matGA, oldGA, gamete, earlyPSP, im...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
Ec_DES_25f.log2 <-
  readr::read_csv(file = "data/Ec_DES_25f.log2.csv")
## Rows: 7657 Columns: 11
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr  (1): GeneID
## dbl (10): Phylostratum, meiospore, immGA, matGA, oldGA, gamete, earlyPSP, im...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

rank-tranformed

Ec_DES_32m.rank <-
  readr::read_csv(file = "data/Ec_DES_32m.rank.csv")
## Rows: 7657 Columns: 11
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr  (1): GeneID
## dbl (10): Phylostratum, meiospore, immGA, matGA, oldGA, gamete, earlyPSP, im...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
Ec_DES_25f.rank <-
  readr::read_csv(file = "data/Ec_DES_25f.rank.csv")
## Rows: 7657 Columns: 11
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr  (1): GeneID
## dbl (10): Phylostratum, meiospore, immGA, matGA, oldGA, gamete, earlyPSP, im...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

rlog-tranformed

Ec_DES_32m.rlog <-
  readr::read_csv(file = "data/Ec_DES_32m.rlog.csv")
## Rows: 7657 Columns: 11
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr  (1): GeneID
## dbl (10): Phylostratum, meiospore, immGA, matGA, oldGA, gamete, earlyPSP, im...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
Ec_DES_25f.rlog <-
  readr::read_csv(file = "data/Ec_DES_25f.rlog.csv")
## Rows: 7657 Columns: 11
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr  (1): GeneID
## dbl (10): Phylostratum, meiospore, immGA, matGA, oldGA, gamete, earlyPSP, im...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

PlotCategoryExpr()

Ectocaprus Male

PlotCategoryExpr(
  ExpressionSet = Ec_DES_32m.log2,
  legendName    = "DS",
  test.stat     = TRUE,
  type          = "stage-centered",
  distr.type    = "boxplot",
  log.expr      = FALSE) +
  ggplot2::labs(
    title = "Ectocarpus (male)",
    subtitle = "log2(TPM+1)"
  )
##                DS1   DS2   DS3   DS4   DS5   DS6   DS7   DS8   DS9   DS10 
## stage-centered "***" "***" "***" "***" "***" "***" "***" "***" "***" "***"

PlotCategoryExpr(
  ExpressionSet = Ec_DES_25f.log2,
  legendName    = "DS",
  test.stat     = TRUE,
  type          = "stage-centered",
  distr.type    = "boxplot",
  log.expr      = FALSE) +
  ggplot2::labs(
    title = "Ectocarpus (female)",
    subtitle = "log2(TPM+1)"
  )
##                DS1   DS2   DS3   DS4   DS5   DS6   DS7   DS8   DS9   DS10 
## stage-centered "***" "***" "***" "***" "***" "***" "***" "***" "***" "***"

PlotCategoryExpr(
  ExpressionSet = Ec_DES_32m.rlog,
  legendName    = "DS",
  test.stat     = TRUE,
  type          = "stage-centered",
  distr.type    = "boxplot",
  log.expr      = FALSE) +
  ggplot2::labs(
    title = "Ectocarpus (male)",
    subtitle = "rlog(TPM+1)"
  )
##                DS1   DS2   DS3   DS4   DS5   DS6   DS7   DS8   DS9   DS10 
## stage-centered "***" "***" "***" "***" "***" "***" "***" "***" "***" "***"

PlotCategoryExpr(
  ExpressionSet = Ec_DES_25f.rlog,
  legendName    = "DS",
  test.stat     = TRUE,
  type          = "stage-centered",
  distr.type    = "boxplot",
  log.expr      = FALSE) +
  ggplot2::labs(
    title = "Ectocarpus (female)",
    subtitle = "rlog(TPM+1)"
  )
##                DS1   DS2   DS3   DS4   DS5   DS6   DS7   DS8   DS9   DS10 
## stage-centered "***" "***" "***" "***" "***" "***" "***" "***" "***" "***"

PlotCategoryExpr(
  ExpressionSet = dplyr::select(Ec_DES_32m.log2, c(1,2) | dplyr::ends_with("PSP")),
  legendName    = "DS",
  test.stat     = TRUE,
  type          = "stage-centered",
  distr.type    = "boxplot",
  log.expr      = FALSE) +
  ggplot2::labs(
    title = "Ectocarpus (male) multicellular PSP",
    subtitle = "log2(TPM+1)"
  )
##                DS1   DS2   DS3   DS4   DS5   DS6   DS7   DS8   DS9   DS10 
## stage-centered "***" "***" "***" "***" "***" "***" "***" "***" "***" "***"

PlotCategoryExpr(
  ExpressionSet = dplyr::select(Ec_DES_25f.log2, c(1,2) | dplyr::ends_with("PSP")),
  legendName    = "DS",
  test.stat     = TRUE,
  type          = "stage-centered",
  distr.type    = "boxplot",
  log.expr      = FALSE) +
  ggplot2::labs(
    title = "Ectocarpus (female) multicellular PSP",
    subtitle = "log2(TPM+1)"
  )
##                DS1   DS2   DS3   DS4   DS5   DS6   DS7   DS8   DS9   DS10 
## stage-centered "***" "***" "***" "***" "***" "***" "***" "***" "***" "***"

PlotCategoryExpr(
  ExpressionSet = dplyr::select(Ec_DES_32m.log2, c(1,2) | dplyr::ends_with("GA")),
  legendName    = "DS",
  test.stat     = TRUE,
  type          = "stage-centered",
  distr.type    = "boxplot",
  log.expr      = FALSE) +
  ggplot2::labs(
    title = "Ectocarpus (male) multicellular GA",
    subtitle = "log2(TPM+1)"
  )
##                DS1 DS2    DS3    DS4 DS5  DS6   DS7   DS8   DS9   DS10 
## stage-centered "*" "n.s." "n.s." "*" "**" "***" "***" "***" "***" "***"

PlotCategoryExpr(
  ExpressionSet = dplyr::select(Ec_DES_25f.log2, c(1,2) | dplyr::ends_with("GA")),
  legendName    = "DS",
  test.stat     = TRUE,
  type          = "stage-centered",
  distr.type    = "boxplot",
  log.expr      = FALSE) +
  ggplot2::labs(
    title = "Ectocarpus (female) multicellular GA",
    subtitle = "log2(TPM+1)"
  )
##                DS1 DS2   DS3   DS4   DS5   DS6   DS7   DS8   DS9   DS10 
## stage-centered "*" "***" "***" "***" "***" "***" "***" "***" "***" "***"

Summary

In Fucus, all DS’s are clearly differentially expressed on average between developmental stages (as defined in myTAI’s PlotCategoryExpr()). In F. distichus gametes, males have a lower expression level across all DS’s. In F. serratus gametes, this is also the case. F. serratus is dioecious and in the matSP, we find that all DS except D4 is significantly differentially regulated between sexes when averaging all constituent tissues together, though the trace is weak.

Between tissue types of matSP in both Fucus species, essentially all gene age categories are differentially expressed. Focusing on the differences between sexes of matSP tissue types in the dioecious F. serratus, we see no significant differences between sexes in the vegetative tip (vegtip). DS1, DS3 and DS5 are differentially expressed in the holdfast (weakly). All DS’s are differentially expressed in the stipe. As we would suspect, the sex-differences are significant in the reproductive tip (reptip).

Together, this indicates that genes of all DS’s are recruited to play a large role in the development of Fucus. All DS’s plays a weak role in adult sex differentiation in dioecious F. serratus. In both F. serratus and F. distichus, the gametes differentially expresses all DS’s. It is surprising that many DS are differentially expressed between sexes in the stipe in the dioecious F. serratus, compared to other non-reproductive tissues such as the holdfast and vegtip. As we expect, differential DS expression is significant between sexes in the reptip, whose cell-type composition foretells the differences in the gamete. Furthermore, it is surprising that the signals for differentially expressed DS differ from those of PS.

Compared to the age profile in Fucus, in Ectocarpus all DS’s are differentially expressed between developmental stages, even when considering just the multicellular PSP or GA. This points to a more dynamic transcriptional landscape through development, which involves genes from all levels of purifying selection (mostly since dNdS lies mostly under 1). When including all stages together, we see that the unicellar stages have less expression across all DS, though this difference could be due to the lower RNA quality in meiospores and mitospores. Lastly, unlike Ectocarpus, in Fucus, we have only 5 DS’s. Thus, the resolution for this analysis is reduced in Fucus.

Get session info.

devtools::session_info()
## ─ Session info ───────────────────────────────────────────────────────────────
##  setting  value
##  version  R version 4.2.2 (2022-10-31)
##  os       macOS Big Sur ... 10.16
##  system   x86_64, darwin17.0
##  ui       X11
##  language (EN)
##  collate  en_GB.UTF-8
##  ctype    en_GB.UTF-8
##  tz       Europe/Berlin
##  date     2023-08-16
##  pandoc   2.19.2 @ /Applications/RStudio.app/Contents/MacOS/quarto/bin/tools/ (via rmarkdown)
## 
## ─ Packages ───────────────────────────────────────────────────────────────────
##  package     * version    date (UTC) lib source
##  bit           4.0.5      2022-11-15 [1] CRAN (R 4.2.0)
##  bit64         4.0.5      2020-08-30 [1] CRAN (R 4.2.0)
##  bslib         0.5.0      2023-06-09 [1] CRAN (R 4.2.0)
##  cachem        1.0.8      2023-05-01 [1] CRAN (R 4.2.0)
##  callr         3.7.3      2022-11-02 [1] CRAN (R 4.2.0)
##  cli           3.6.1      2023-03-23 [1] CRAN (R 4.2.0)
##  codetools     0.2-19     2023-02-01 [1] CRAN (R 4.2.0)
##  colorspace    2.1-0      2023-01-23 [1] CRAN (R 4.2.0)
##  crayon        1.5.2      2022-09-29 [1] CRAN (R 4.2.0)
##  devtools      2.4.5      2022-10-11 [1] CRAN (R 4.2.0)
##  digest        0.6.33     2023-07-07 [1] CRAN (R 4.2.0)
##  dplyr       * 1.1.2      2023-04-20 [1] CRAN (R 4.2.0)
##  ellipsis      0.3.2      2021-04-29 [1] CRAN (R 4.2.0)
##  evaluate      0.21       2023-05-05 [1] CRAN (R 4.2.0)
##  fansi         1.0.4      2023-01-22 [1] CRAN (R 4.2.0)
##  farver        2.1.1      2022-07-06 [1] CRAN (R 4.2.0)
##  fastmap       1.1.1      2023-02-24 [1] CRAN (R 4.2.0)
##  forcats     * 1.0.0      2023-01-29 [1] CRAN (R 4.2.0)
##  foreach       1.5.2      2022-02-02 [1] CRAN (R 4.2.0)
##  fs            1.6.3      2023-07-20 [1] CRAN (R 4.2.0)
##  generics      0.1.3      2022-07-05 [1] CRAN (R 4.2.0)
##  ggplot2     * 3.4.2      2023-04-03 [1] CRAN (R 4.2.0)
##  glue          1.6.2      2022-02-24 [1] CRAN (R 4.2.0)
##  gtable        0.3.3      2023-03-21 [1] CRAN (R 4.2.0)
##  highr         0.10       2022-12-22 [1] CRAN (R 4.2.0)
##  hms           1.1.3      2023-03-21 [1] CRAN (R 4.2.0)
##  htmltools     0.5.5      2023-03-23 [1] CRAN (R 4.2.0)
##  htmlwidgets   1.6.2      2023-03-17 [1] CRAN (R 4.2.0)
##  httpuv        1.6.11     2023-05-11 [1] CRAN (R 4.2.2)
##  iterators     1.0.14     2022-02-05 [1] CRAN (R 4.2.0)
##  jquerylib     0.1.4      2021-04-26 [1] CRAN (R 4.2.0)
##  jsonlite      1.8.7      2023-06-29 [1] CRAN (R 4.2.0)
##  knitr         1.43       2023-05-25 [1] CRAN (R 4.2.2)
##  later         1.3.1      2023-05-02 [1] CRAN (R 4.2.2)
##  lattice       0.21-8     2023-04-05 [1] CRAN (R 4.2.0)
##  lifecycle     1.0.3      2022-10-07 [1] CRAN (R 4.2.0)
##  lubridate   * 1.9.2      2023-02-10 [1] CRAN (R 4.2.0)
##  magrittr      2.0.3      2022-03-30 [1] CRAN (R 4.2.0)
##  Matrix        1.5-4.1    2023-05-18 [1] CRAN (R 4.2.0)
##  memoise       2.0.1      2021-11-26 [1] CRAN (R 4.2.0)
##  mime          0.12       2021-09-28 [1] CRAN (R 4.2.0)
##  miniUI        0.1.1.1    2018-05-18 [1] CRAN (R 4.2.0)
##  munsell       0.5.0      2018-06-12 [1] CRAN (R 4.2.0)
##  myTAI       * 1.0.1.9000 2023-08-14 [1] Github (drostlab/myTAI@d31325e)
##  pillar        1.9.0      2023-03-22 [1] CRAN (R 4.2.0)
##  pkgbuild      1.4.2      2023-06-26 [1] CRAN (R 4.2.0)
##  pkgconfig     2.0.3      2019-09-22 [1] CRAN (R 4.2.0)
##  pkgload       1.3.2.1    2023-07-08 [1] CRAN (R 4.2.0)
##  plyr          1.8.8      2022-11-11 [1] CRAN (R 4.2.0)
##  prettyunits   1.1.1      2020-01-24 [1] CRAN (R 4.2.0)
##  processx      3.8.2      2023-06-30 [1] CRAN (R 4.2.0)
##  profvis       0.3.8      2023-05-02 [1] CRAN (R 4.2.0)
##  promises      1.2.1      2023-08-10 [1] CRAN (R 4.2.2)
##  ps            1.7.5      2023-04-18 [1] CRAN (R 4.2.0)
##  purrr       * 1.0.2      2023-08-10 [1] CRAN (R 4.2.2)
##  R6            2.5.1      2021-08-19 [1] CRAN (R 4.2.0)
##  Rcpp          1.0.11     2023-07-06 [1] CRAN (R 4.2.0)
##  readr       * 2.1.4      2023-02-10 [1] CRAN (R 4.2.0)
##  remotes       2.4.2.1    2023-07-18 [1] CRAN (R 4.2.2)
##  reshape2      1.4.4      2020-04-09 [1] CRAN (R 4.2.0)
##  rlang         1.1.1      2023-04-28 [1] CRAN (R 4.2.0)
##  rmarkdown     2.23       2023-07-01 [1] CRAN (R 4.2.0)
##  rstudioapi    0.15.0     2023-07-07 [1] CRAN (R 4.2.0)
##  sass          0.4.7      2023-07-15 [1] CRAN (R 4.2.0)
##  scales        1.2.1      2022-08-20 [1] CRAN (R 4.2.0)
##  sessioninfo   1.2.2      2021-12-06 [1] CRAN (R 4.2.0)
##  shiny         1.7.4.1    2023-07-06 [1] CRAN (R 4.2.0)
##  stringi       1.7.12     2023-01-11 [1] CRAN (R 4.2.0)
##  stringr     * 1.5.0      2022-12-02 [1] CRAN (R 4.2.0)
##  tibble      * 3.2.1      2023-03-20 [1] CRAN (R 4.2.0)
##  tidyr       * 1.3.0      2023-01-24 [1] CRAN (R 4.2.0)
##  tidyselect    1.2.0      2022-10-10 [1] CRAN (R 4.2.0)
##  tidyverse   * 2.0.0      2023-02-22 [1] CRAN (R 4.2.0)
##  timechange    0.2.0      2023-01-11 [1] CRAN (R 4.2.0)
##  tzdb          0.4.0      2023-05-12 [1] CRAN (R 4.2.2)
##  urlchecker    1.0.1      2021-11-30 [1] CRAN (R 4.2.0)
##  usethis       2.2.2      2023-07-06 [1] CRAN (R 4.2.0)
##  utf8          1.2.3      2023-01-31 [1] CRAN (R 4.2.0)
##  vctrs         0.6.3      2023-06-14 [1] CRAN (R 4.2.0)
##  vroom         1.6.3      2023-04-28 [1] CRAN (R 4.2.0)
##  withr         2.5.0      2022-03-03 [1] CRAN (R 4.2.0)
##  xfun          0.40       2023-08-09 [1] CRAN (R 4.2.2)
##  xtable        1.8-4      2019-04-21 [1] CRAN (R 4.2.0)
##  yaml          2.3.7      2023-01-23 [1] CRAN (R 4.2.0)
## 
##  [1] /Library/Frameworks/R.framework/Versions/4.2/Resources/library
## 
## ──────────────────────────────────────────────────────────────────────────────